

/**
 * 
 */
Ext.define('SnowMIS.view.selling.Customer', {
	extend : 'SnowMIS.view.ShowPanel' // 继承父类
	, alias : 'widget.customerpanel' // 别名
	, requires : [
		'SnowMIS.model.selling.Customer'
		, 'SnowMIS.store.selling.Region'
		, 'SnowMIS.store.basic.OrganisationType'
	]
	, labelWidth : 100 // 设置标签长度
	, autoHeight : true
	, bufferResize : true
	, modelId : null
	, initComponent : function() {
		var panel = this;
		var action = this.getAction(); // 执行的动作
		var method = this.getMethod(); // 执行的方法
		var modelId = this.modelId; // 模型ID
		var readOnly = action == 'show'; // 判断是否设置为只读
		var baseTitle = '基础资料';
		var businessLicenseTitle = '营业执照';
		var contactPersonTitle = '联系人信息';
		Ext.apply(this, {
			items : [{
				xtype : 'form'
				, bodyPadding : 5
				, border : false
				, items : [{
					xtype : 'fieldset'
					, title : baseTitle
					, labelWidth : 80
					, autoHeight : true // 设置自动高度
					, collapsible : true // 设置可折叠
					, border : false
					, items : [{
						xtype : 'panel'
						, layout : 'column'
						, border : false
						, items : [{
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'textfield'
								, tabIndex : 1
								, name : 'name'
								, anchor : '95%'
								, labelAlign : 'right'
								, allowBlank : false
								, readOnly : readOnly
								, fieldLabel : '客户名称'
								, blankText : '客户名称不能为空'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 4
								, name : 'regionId'
								, anchor : '95%'
								, allowBlank : false
								, labelAlign : 'right'
								, fieldLabel : '所属区域'
								, blankText : '请选择所属区域'
								, readOnly : readOnly
								, store : Ext.create('SnowMIS.store.selling.Region', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 7
								, anchor : '95%'
								, name : 'customerSourceId'
								, allowBlank : false
								, labelAlign : 'right'
								, blankText : '请选择客户来源'
								, readOnly : readOnly
								, fieldLabel : '客户来源'
								, store : Ext.create('SnowMIS.store.selling.CustomerSource', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}]
						}, {
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'textfield'
								, tabIndex : 2
								, name : 'alias'
								, anchor : '95%'
								, labelAlign : 'right'
								, allowBlank : false
								, readOnly : readOnly
								, fieldLabel : '客户别称'
								, blankText : '客户别称不能为空'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 5
								, anchor : '95%'
								, name : 'organisationTypeId'
								, labelAlign : 'right'
								, allowBlank : false
								, blankText : '请选择单位性质'
								, readOnly : readOnly
								, fieldLabel : '单位性质'
								, store : Ext.create('SnowMIS.store.basic.OrganisationType', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 8
								, name : 'customerStatusId'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, allowBlank : false
								, fieldLabel : '客户状态'
								, blankText : '请选择客户状态'
								, store : Ext.create('SnowMIS.store.selling.CustomerStatus', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}]
						}, {
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'combo'
								, tabIndex : 3
								, name : 'industryId'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '行业信息'
								, blankText : '请选择行业信息'
								, store : Ext.create('SnowMIS.store.basic.Industry', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 6
								, name : 'customerRatingId'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, allowBlank : false
								, fieldLabel : '客户等级'
								, blankText : '请选择客户等级'
								, store : Ext.create('SnowMIS.store.selling.CustomerRating', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}, {
								xtype : 'combo'
								, tabIndex : 9
								, anchor : '95%'
								, name : 'customerTypeId'
								, labelAlign : 'right'
								, allowBlank : false
								, blankText : '请选择客户类型'
								, readOnly : readOnly
								, fieldLabel : '客户类型'
								, store : Ext.create('SnowMIS.store.selling.CustomerType', {
									pageSize : 6
								})
								, pageSize : 6
								, minChars : 0
								, triggerAction : 'all'
								, queryMode : 'remote'
								, queryParam : 'name'
								, displayField : 'name'
								, valueField : 'id'
								, inputType : 'text'
							}]
						}]
					}]
				}, {
					xtype : 'fieldset'
					, title : businessLicenseTitle
					, autoHeight : true // 设置自动高度
					, collapsible : true // 设置可折叠
					, labelAlign : 'right' // 设置文字标签位置
					, border : false
					, items : [{
						xtype : 'panel'
						, layout : 'column'
						, autoWidth : true
						, border : false
						, items : [{
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseCode'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '机构代码'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseRepresentative'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '法人代表'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseOrganizationType'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '公司类型'
								, inputType : 'text'
							}, {
								xtype : 'datefield'
								, tabIndex : 10
								, name : 'licenseBirthday'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, format : 'Y-m-d'
								, fieldLabel : '成立日期'
								, maxValue : new Date()
							}]
						}, {
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseNumber'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '注册号'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseProducts'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '经营范围'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseRegisteredCapital'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '注册资本'
								, inputType : 'text'
							}, {
								xtype : 'datefield'
								, tabIndex : 10
								, name : 'licenseFromDate'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, format : 'Y-m-d'
								, fieldLabel : '开始日期'
							}]
						}, {
							xtype : 'form'
							, columnWidth : 1/3
							, border : false
							, items : [{
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseName'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '机构名称'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licenseAddress'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '注册地址'
								, inputType : 'text'
							}, {
								xtype : 'textfield'
								, tabIndex : 10
								, name : 'licensePaidInCapital'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, fieldLabel : '实收资本'
								, inputType : 'text'
							}, {
								xtype : 'datefield'
								, tabIndex : 10
								, name : 'licenseStopDate'
								, anchor : '95%'
								, labelAlign : 'right'
								, readOnly : readOnly
								, format : 'Y-m-d'
								, fieldLabel : '结束日期'
							}]
						}]
					}]
				}, {
					xtype : 'fieldset'
					, title : contactPersonTitle
					, autoHeight : true // 设置自动高度
					, collapsible : true // 设置可折叠
					, labelAlign : 'right' // 设置文字标签位置
					, border : false
					, items : [{
					}]
				}]
			}]
			, buttonAlign : 'center'
			, buttons : [{
				xtype : 'button'
				, text : '提交'
				, hidden : readOnly
				, handler : function() {
					if (panel instanceof Ext.form.Panel) {
						var form = panel.getForm();
						if (form instanceof Ext.form.Basic) {
							var url = basePath + 'services/rest/selling/customers';
							if (modelId) {
								url += '/' + modelId;
							}
							form.submit({
								url : url
								, method : method
								, type : 'JSON'
								, success : function(form, action) {
									Ext.Msg.alert('Success', action.result.message);
								}
								, failure : function(form, action) {
									switch (action.failureType) {
							            case Ext.form.action.Action.CLIENT_INVALID:
							                Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
							                break;
							            case Ext.form.action.Action.CONNECT_FAILURE:
							                Ext.Msg.alert('Failure', 'Ajax communication failed');
							                break;
							            case Ext.form.action.Action.SERVER_INVALID:
							               Ext.Msg.alert('Failure', action.result.message);
							       }
								}
							});
						}
					}
				}
			}, {
				xtype : 'button'
				, text : '关闭'
				, hidden : !readOnly
				, handler : function() {
					panel.close();
				}
			}, {
				xtype : 'button'
				, text : '重置'
				, handler : function() {
					if (panel instanceof Ext.form.Panel) {
						var form = panel.getForm();
						if (form instanceof Ext.form.Basic) {
							form.reset();
						}
					}
				}
			}]
		});
		if (readOnly) {
			this.loadCustomer();
		}
		this.callParent(arguments);
	}
	, loadCustomer : function() {
		
	}
});
